package javaeSE.string;

//import org.junit.Test;

public class StringCount {
    
    /* 获取一个字符串在另一个字符串中出现的次数。 */
    public static void main(String[] args) {
        testGetCount();
    }
  
    public static int getCount(String mainStr,String subStr){
        int mainLength = mainStr.length();
        int subLength = subStr.length();
        int count = 0;
        int index = 0;
        if(mainLength >= subLength){
            //方式一：好理解一点
//            while((index = mainStr.indexOf(subStr)) != -1){
//                count++;
//                mainStr = mainStr.substring(index + subStr.length());
//            }
            //方式二：对方式一的改进
//          int indexOf(String str, int startIndex)：从指定的索引处开始，返回第一次出现的指定子字符串在此字符串中的索引
            while((index = mainStr.indexOf(subStr,index)) != -1){
                // System.out.println(index); 0 8 16 21
                count++;
                index += subLength; // index:2 10,18,23
            }

            return count;
        }else{
            return 0;
        }
    }
    
    public static void testGetCount(){
        String mainStr = "abkkcadkabkebfkaabkskab";
        String subStr = "ab";
        int count = getCount(mainStr, subStr);
        System.out.println(count);
    }
}
